
import json

from django_redis import get_redis_connection

from utils.cookiesecret import CookieSecret


# 封装购物车数据 合并 到 redis中的函数

def merge_cart_cookie_to_redis(request, response):
    """
    登录后合并cookie购物车数据到Redis
    :param request: 本次请求对象，获取cookie中的数据
    :param response: 本次响应对象，清除cookie中的数据
    :return: response
    """
    # 1.获取cookie数据
    cookie_str = request.COOKIES.get('carts')
    # 链接redis数据库
    client = get_redis_connection('carts')
    # 2.判断如果有－－解密
    if cookie_str is not None:
        # 3.解密－－dict--遍历--hset--redis
        cookie_dict = CookieSecret.loads(cookie_str)

        # 覆盖redis的数据
        for sku_id in cookie_dict:
            client.hset(request.user.id, sku_id, json.dumps(cookie_dict[sku_id]))
        # 4.删除cookie
        response.delete_cookie('carts')